home *** CD-ROM | disk | FTP | other *** search
/ Aminet 33 / Aminet 33 - October 1999.iso / Aminet / dev / cross / ava-0.2.5.lha / ava-0.2.5 / avalib / arch.inc next >
Encoding:
Text File  |  1999-03-23  |  2.6 KB  |  128 lines

  1. /*
  2.     arch.inc
  3.  
  4.     AVA Micro-controller (MCU) Declarations
  5.  
  6.     This file is automatically included to every assembler source
  7.         immediately after first non system definition as: 
  8.       #arch MCU_NAME
  9.  
  10.     Uros Platise (c) 1998-1999
  11.     Last update: 7. February 1999
  12.  
  13.   AVR FAMILY MICRO-CONTROLLERS
  14.   Supported models:
  15.     - AT90S1200
  16.     - AT90S2313
  17.     - AT90S2323
  18.     - AT90S2333
  19.     - AT90S2343
  20.     - AT90S4414
  21.     - AT90S4433
  22.     - AT90S4434
  23.     - AT90S8515
  24.     - AT90S8535
  25.     - ATmega603
  26.     - ATmega103
  27. */
  28.  
  29. /*
  30.   Current Version
  31.   Produce error if arch versions do not much cross object files.
  32. */
  33. #define public __AVA_ARCH_VER    5
  34.  
  35. #if AT90S1200
  36. device AVR 1
  37. #define __ERAM_SIZE 0                /* no memory no option */
  38. seg abstract abs=0 size=__ERAM_SIZE eram
  39. seg abs=0 size=64 eeprom
  40. seg abs=0 size=1024 align=2 flash        /* the last is default segment! */
  41. #endif
  42.  
  43. #if AT90S2313 | AT90S2323 | AT90S2333 | AT90S2343
  44. device AVR 2
  45. #ifndef __ERAM_SIZE
  46. #define __ERAM_SIZE 224        /* 128 of sram + 96 of i/o mapped */
  47. #endif
  48. #define __AVR_IOMAP
  49. seg abstract abs=0 size=__ERAM_SIZE eram
  50. seg abs=0 size=128 eeprom
  51. seg abs=0 size=2048 align=2 flash
  52. #endif
  53.  
  54. #if AT90S4414 | AT90S4434
  55. #ifndef __ERAM_SIZE
  56. #define __ERAM_SIZE 0x160    /* defaults to internal memory size */
  57. #endif
  58. #define __AVR_IOMAP
  59. device AVR 2
  60. seg abstract abs=0  size=__ERAM_SIZE eram
  61. seg abs=0 size=256 eeprom
  62. seg abs=0 size=4096 align=2 flash
  63. #endif
  64.  
  65. #if AT90S4433
  66. #ifndef __ERAM_SIZE
  67. #define __ERAM_SIZE 224
  68. #endif
  69. #define __AVR_IOMAP
  70. device AVR 2
  71. seg abstract abs=0  size=__ERAM_SIZE eram
  72. seg abs=0 size=256 eeprom
  73. seg abs=0 size=4096 align=2 flash
  74. #endif
  75.  
  76. #if AT90S8515 | AT90S8535
  77. #define public  __AVR_WRAP_AROUND
  78. #ifndef __ERAM_SIZE
  79. #define __ERAM_SIZE 0x260
  80. #endif
  81. #define __AVR_IOMAP
  82. device AVR 2
  83. seg abstract abs=0 size=__ERAM_SIZE eram
  84. seg abs=0 size=512 eeprom
  85. seg abs=0 size=8192 align=2 flash
  86. #endif
  87.  
  88. /* AVR MEGA FAMILY 64kb and 128kb FLASH */
  89.  
  90. #if ATmega603
  91. #ifndef __ERAM_SIZE
  92. #define __ERAM_SIZE 0x1060
  93. #endif
  94. #define __AVR_IOMAP
  95. device AVR 3
  96. seg abstract abs=0  size=__ERAM_SIZE eram
  97. seg abs=0 size=2048 eeprom
  98. seg abs=0 size=0x10000 align=2 flash
  99. #endif
  100.  
  101. #if ATmega103
  102. #ifndef __ERAM_SIZE
  103. #define __ERAM_SIZE 0x1060
  104. #endif
  105. #define __AVR_IOMAP
  106. device AVR 3
  107. seg abstract abs=0 size=__ERAM_SIZE eram
  108. seg abs=0 size=4096 eeprom
  109. seg abs=0 size=0x20000 align=2 flash
  110. #endif
  111.  
  112. /* 
  113.     AVR Standard Memory Mapped Registers
  114. */
  115. #ifdef __AVR_IOMAP
  116. seg abs=0  size=32 eram.registers
  117. seg abs=32 size=64 eram.io_space
  118. seg flash        /* set default segment */
  119. #endif
  120.  
  121. #ifdef __ERAM_SIZE
  122. #ifndef __ERAM_END    /* if end of ram is not explicitly defined */
  123. #define __ERAM_END    (__ERAM_SIZE - 1)
  124. #endif
  125. #endif
  126.  
  127. /* end of arch.inc */
  128.